package com.huqingshan.LenMore.model.entity;




import com.huqingshan.LenMore.model.enums.ORDERSTATUS;
import com.huqingshan.LenMore.model.enums.PAYTYPE;
import com.huqingshan.LenMore.utils.travel.DateUtils;


import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author 卫鹏
 * @Description 订单表实体类
 * @createTime 2021年11月18日 22:47:00
 */
public class Orders implements Serializable {
    private String id;                          //主键
    private String orderNum;                    //订单编号
    private Date orderTime;                     //下单时间
    private String orderTimeStr;                //###格式化###后的下单时间
    private Integer peopleCount;                //出行人数
    private String orderDesc;                   //订单描述(其他信息)

    private PAYTYPE payType;                    //支付方式(0:支付宝 1:微信 2:其他)
    private String payTypeStr;                  //###格式化###支付方式(0:支付宝 1:微信 2:其他)

    private ORDERSTATUS orderStatus;                //订单状态(0:未支付 1:已支付)
    private String orderStatusStr;              //###格式化###订单状态(0:未支付 1:已支付)

    private String productId;                   //产品编号
    private String memberId;                    //会员编号
    private Product product;                    //产品信息
    private Member member;                      //会员信息
    private List<Traveller> travellers;         //旅客信息

    /**
     * 格式化下单时间
     *
     * @return 格式化后的下单时间
     */
    public String getOrderTimeStr() {
        //调用工具类的时间转换：
        return DateUtils.dateToString(orderTime, "yyyy年MM月dd日 HH时mm分ss秒");
    }

    /**
     * 支付方式(0:支付宝 1:微信 2:其他)
     *
     * @return 格式化后的支付方式
     */
    public PAYTYPE getPayType() {
        //判断payType是否有值:
        if (payType != null) {
            payTypeStr = payType.getPayDescription();
        }
        return payType;
    }

    /**
     * 订单状态(0:未支付 1:已支付)
     *
     * @return 格式化后的订单状态
     */
    public String getOrderStatusStr() {
        //判断orderStatus是否有值:
        if (orderStatus != null) {
            orderStatusStr = orderStatus.getStatusDescription();
        }
        return orderStatusStr;
    }

    @Override
    public String toString() {
        return "Orders{" +
                "id='" + id + '\'' +
                ", orderNum='" + orderNum + '\'' +
                ", orderTime=" + orderTime +
                ", orderTimeStr='" + orderTimeStr + '\'' +
                ", peopleCount=" + peopleCount +
                ", orderDesc='" + orderDesc + '\'' +
                ", payType=" + payType +
                ", payTypeStr='" + payTypeStr + '\'' +
                ", orderStatus=" + orderStatus +
                ", orderStatusStr='" + orderStatusStr + '\'' +
                ", product=" + product +
                ", member=" + member +
                ", travellers=" + travellers +
                '}';
    }
}